Designing Secure Software by Loren Kohnfelder
Author:Loren Kohnfelder [Loren Kohnfelder]
Language: eng
Format: epub, pdf, mobi
Publisher: No Starch Press
Published: 2021-11-15T16:00:00+00:00
Vulnerability Chains
The idea behind vulnerability chains is that seemingly harmless bugs can combine to create a serious security bug. Itâs bug synergy for the attackers. Think of taking a walk and coming upon a stream you would like to cross. Itâs far too wide to leap across, but you notice a few stones sticking up above the surface: by hopping from stone to stone, itâs easy to cross without getting your shoes wet. These stones represent minor bugs, not vulnerabilities themselves, but together they form a new path right through the stream, allowing the attacker to reach deep inside the system. These stepping-stone bugs form, in combination, an exploitable vulnerability.
Hereâs a simple example of how such a vulnerability chain could arise in an online shopping web app. After a recent code change, the appâs order form has a new field prefilled with a code indicating which warehouse will handle the shipment. Previously, business logic in the backend assigned a warehouse after the customer placed the order. Now a field thatâs editable by the customer determines the warehouse that will handle the order. Call this Bug #1. The developer responsible for this change suggests that nobody will notice the addition, and furthermore, even should anyone modify the warehouse designation that the system supplies by default, another warehouse wonât have the requested items in stock, so it will get flagged and corrected: âNo harm, no foul.â Based on this analysis, but without any testing, the team schedules Bug #1 for the next release cycle. Theyâre glad to save themselves a fire drill and schedule slip, and push the buggy code change into production.
Meanwhile, a certain Bug #2 is languishing in the bug database with a Priority-3 ranking (meaning âfix someday,â which is to say, probably never), long forgotten. Years ago, a tester filed Bug #2 after discovering that if you place an order with the wrong warehouse designation, the system immediately issues a refund because that warehouse is unable to fulfill it; but then another processing stage reassigns the order to the correct warehouse, which fulfills and ships it. The tester saw this as a serious problemâthe company would be giving away merchandise for freeâand filed it as Priority-1. In the triage meeting, the programmers insisted that the tester was âcheatingâ because the backend handled the warehouse assignment (before Bug #1 was introduced) after confirming available inventory. In other words, at the time of discovery, Bug #2 was purely hypothetical and could never have happened in production. Since the interaction of various stages of business logic would be difficult to untangle, the team decided to leave it alone and make the bug Priority-3, and it was quickly forgotten.
If you followed this story of âletting sleeping bugs lieâ you probably already can see that it has an unhappy ending. With the introduction of Bug #1, in combination with Bug #2, a fully fledged vulnerability chain now exists, almost certainly unbeknownst to anyone. Now that the warehouse designation field is writable by customers, the wrong warehouse case that triggers Bug #2 is easy to produce.
Download
Designing Secure Software by Loren Kohnfelder.pdf
Designing Secure Software by Loren Kohnfelder.mobi
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Sass and Compass in Action by Wynn Netherland Nathan Weizenbaum Chris Eppstein Brandon Mathis(7799)
Grails in Action by Glen Smith Peter Ledbrook(7712)
Configuring Windows Server Hybrid Advanced Services Exam Ref AZ-801 by Chris Gill(6734)
Azure Containers Explained by Wesley Haakman & Richard Hooper(6734)
Running Windows Containers on AWS by Marcio Morales(6246)
Kotlin in Action by Dmitry Jemerov(5080)
Microsoft 365 Identity and Services Exam Guide MS-100 by Aaron Guilmette(5002)
Combating Crime on the Dark Web by Nearchos Nearchou(4588)
Microsoft Cybersecurity Architect Exam Ref SC-100 by Dwayne Natwick(4509)
Management Strategies for the Cloud Revolution: How Cloud Computing Is Transforming Business and Why You Can't Afford to Be Left Behind by Charles Babcock(4431)
The Ruby Workshop by Akshat Paul Peter Philips Dániel Szabó and Cheyne Wallace(4261)
The Age of Surveillance Capitalism by Shoshana Zuboff(3968)
Python for Security and Networking - Third Edition by José Manuel Ortega(3832)
Learn Windows PowerShell in a Month of Lunches by Don Jones(3521)
The Ultimate Docker Container Book by Schenker Gabriel N.;(3499)
Learn Wireshark by Lisa Bock(3419)
Mastering Python for Networking and Security by José Manuel Ortega(3366)
Mastering Azure Security by Mustafa Toroman and Tom Janetscheck(3342)
Blockchain Basics by Daniel Drescher(3314)
